[数据平台]06 数据平台之数据采集与治理 六

数据采集介绍、数据采集场景、数据采集系统需求、常用的数据采集工具[Sqoop、Flume、DataX]、数据治理、Apache Atlas数据治理

Posted by 李玉坤 on 2018-06-21

数据采集介绍

ETL基本上就是数据采集的代表,包括数据的提取(Extract),转换(Transform)和加载(Load)。

数据源是整个大数据平台的上游,数据采集是数据源与数仓之间的管道。

在采集过程中针对业务场景对数据进行治理,完成数据清洗工作

数据源复杂、多样,包括业务数据库、日志数据、图片、视频等多媒体数据等。

数据采集形式也需要更加复杂,多样,包括定时、实时、增量、全量等。

常见的数据采集工具也多种多样,可以满足多种业务需求

数据采集场景

  • 场景1:从支持FTP,SFTP,HTTP等协议的数据源获取数据
  • 场景2:从业务数据库获取数据,数据采集录入后需支撑业务系统
  • 场景3:数据源通过Kafka等消息队列,需要实时采集数据

数据采集系统需求

  • 数据源管理与状态监控
  • 定时、实时、全量、增量等多模式的数据采集及任务监控
  • 元数据管理、数据补采及数据归档

常用的数据采集工具

Sqoop:常用的关系数据库与HDFS之间的数据导入导出工具,将导入或导出命令翻译成MapReduce程序来实现Apache

Flume:分布式、可靠的、高可用的日志收集系统,支持多种数据来源,配置灵活

Datax:阿里开源的异构数据源同步工具,致力于实现关系数据库、HDFS, Hive, HBase, FTP等异构数据源的稳定数据同步

Sqoop

用于在Hadoop和传统的数据库(Mysql, Postgresql等)进行数据的传递。

可以通过Hadoop的MapReduce把数据从关系型数据库中导入到Hadoop集群。

传输大量结构化或半结构化数据的过程是完全自动化的。

Sqoop Import流程:

  • 获取源数据表的MetaData信息
  • 根据参数提交MapReduce任务
  • 表内每行作为一条记录,按计划进行数据导入

Sqoop Export流程:

  • 获取目标数据表的MetaData信息
  • 根据参数提交MapReduce任务
  • 对HDFS文件内每行数据按指定字符分割,导出到数据库

Flume

Flume是一个分布式的对海量日志进行采集,聚合和传输的系统。

Flume系统分为三个组件,分别是source,sink,channel。

Flume允许用户构建一个复杂的数据流,比如数据流经多个agent最终落地。

示意图1:

示意图2:

示意图3:

DataX


Datax是一个异构数据源离线同步工具。

实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

将复杂的网状的同步链路变成了星型数据链路,有良好的扩展性。

架构:

数据治理

数据所面临的问题

  • 相比传统数仓大数据时代数据更加多样、更加复杂、数据量更大
  • 随处可见的数据不统一、难以提升的数据质量、难以完成的数据模型梳理
  • 多种采集工具、多种存储方式使数据仓库or数据湖变成数据沼泽

数据治理解决的问题

  • 数据不可知:用户不知道有哪些数据、不知道数据和业务的关系
  • 数据不可控:没有统一的数据标准,数据无法集成和统一
  • 数据不可取:用户不能便捷的取到数据,或者取到的数据不可用
  • 数据不可联:数据之间的关系没有体现出来,数据深层价值无法体现

数据治理目标

  • 建立统一数据标准与数据规范,保障数据质量
  • 制定数据管理流程,把控数据整个生命周期
  • 形成平台化工具,提供给用户使用

数据治理

  • 数据治理包括元数据管理、数据质量管理、数据血缘管理等
    • 元数据管理:数据的库表结构等schema信息;数据存储空间、读写记录、权限归属及其他各类统计信息
    • 数据血缘管理:数据之间的血缘关系及生命周期;数据的业务属性信息和业务数据模型
  • 数据治理在数据采集、数据清洗、数据计算等各个环节
  • 数据治理难得不是技术,而是流程、协同和管理

数据治理步骤

  • 统一数据规范和数据定义,打通业务模型和技术模型
  • 提升数据质量,实现数据全生命周期管理
  • 挖掘数据价值,帮助业务人员便捷灵活的使用数据

数据治理与周边系统

  • ODS, DWD, DM等各层次元数据纳入数据治理平台集中管理
  • 数据采集及处理流程中产生的元数据纳入数据治理平台,并建立血缘关系
  • 提供数据管理的服务接口,数据模型变更及时通知上下游

数据治理工具

  • Apache Atlas: Hortonworks主推的数据治理开源项目
  • Navigator: Cloudera提供的数据管理的解决方案
  • WhereHows: LinkedIn内部使用并开源的数据管理解决方案

Apache Atlas数据治理

  • 数据分类:自动捕获、定义和注释元数据,对数据进行业务导向分类
  • 集中审计:捕获所有步骤、应用及数据交互的访问信息
  • 搜索与血缘:基于分类和审计关联数据与数据的关系,并通过可视化的方式展现

架构:

  • Type System:对需要管理的元数据对象抽象的实体,由类型构成
  • Ingest\Export:元数据的自动采集和导出工具, Export可以作为事件进行触发,使用户可以及时响应
  • Graph Engine:通过图数据库和图计算引擎展现数据之间的关系

元数据捕获

  • Hook:来自各个组件的Hook自动捕获数据进行存储
  • Entity:集成的各个系统在操作时触发事件进行写入
  • 获取元数据的同时,获取数据之间的关联关系,构建血缘